package com.cskaoyan.javase.array._0introduction;

/**
 * @description: 数组的引入
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 * > 引例
 * - 假设一个班上有80个人，现在需要统计，某一门课程的平均成绩，是否需要定义80个变量？
 * - 编写一个程序，需要储存12个月份的天数，是否要定义12个变量呢？
 * - 编写一个扑克程序，需要储存54张扑克的信息，是否要定义54个变量？
 * - 如果程序需要储存上成千上万的数据，程序员是不是也要逐一定义成千上万个变量呢？
 *
 * 这显然是不需要的,首先这么做很麻烦,其次没有统一规范的管理会导致维护起来很麻烦(维护困难是更重要的)
 * - 如果程序需要多少数据，就要定义多少个变量：
 *   - 这样做就好比去超市买了一堆东西然后一个个拿回家一样，工程量过于巨大且麻烦
 *   - 更重要的是这些逐一定义的变量间彼此独立，根本没有任何内在联系
 *     - 这会对维护这些变量带来巨大困难，甚至无法维护
 *  在商业的,大型的程序开发中,程序可维护性是最看重的东西,我们要追求程序的扩展性和可维护性
 *
 * - 于是程序的设计者引入了数组（array）的概念，定义一个数组，就可以存储很多数据
 * 数组是Java开发中最基础,最基本的"容器",可以用来存储很多元素,数据
 *
 * 思考：
 * 数组中的数据是胡乱的摆放在一起吗？数组对装在里面的数据有什么要求吗？
 * 数组中数据元素是有序排放的,数组是线性表的一种物理实现,数组中的数据元素是像一条线一样排列起来的
 * 并且数组中元素是有编号的,这个编号是从0开始的,最大值是长度-1,这种编号专业名字叫"下标"或者"索引" index
 *
 * 数组中存放的元素的数据类型必须是相同的数据类型,也就是说一个数组只能存放一种数据类型的元素
 *
 * 数组的定义:
 * 数组是存储多个，具有相同数据类型的数据元素的有序容器（集合）
 *
 * 需要注意的事项：
 * - 数组本身是一种引用数据类型
 * - 数组里面，可以存储基本数据类型，也可以存储引用数据类型，但是一个数组里面只能存储一种数据类型
 *
 */
public class Demo {
    public static void main(String[] args) {

    }
}